﻿//=============================================================================
//
// メイン [main.h]
//
//=============================================================================
#ifndef _MAIN_H_
#define _MAIN_H_

//*****************************************************************************
// インクルードファイル
//*****************************************************************************
#include "windows.h"
#include "d3dx9.h"
#include <math.h>

#include <time.h>
#include <stdlib.h>

#define DIRECTINPUT_VERSION 0x0800
#include "dinput.h"

//*****************************************************************************
// ライブラリのリンク
//*****************************************************************************
#if 1	// [ここを"0"にした場合、"構成プロパティ" -> "リンカ" -> "入力" -> "追加の依存ファイル"に対象ライブラリを設定する]
#pragma comment (lib, "d3d9.lib")
#pragma comment (lib, "d3dx9.lib")
#pragma comment (lib, "dinput8.lib")
#pragma comment (lib, "dxguid.lib")
#pragma comment (lib, "winmm.lib")
#endif



//*****************************************************************************
// マクロ定義
//*****************************************************************************
// 頂点フォーマット( 頂点座標[2D] / 反射光 / テクスチャ座標 )
#define	FVF_VERTEX_2D	(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1)

#define SCREEN_WIDTH	(800.0f)				// ウインドウの幅
#define SCREEN_HEIGHT	(600.0f)				// ウインドウの高さ
#define SCREEN_CENTER_X	(SCREEN_WIDTH / 2)	// ウインドウの中心Ｘ座標
#define SCREEN_CENTER_Y	(SCREEN_HEIGHT / 2)	// ウインドウの中心Ｙ座標






#define ABC (123)








#define SCREEN_DIAGONAL  (sqrt(SCREEN_WIDTH * SCREEN_WIDTH + SCREEN_HEIGHT * SCREEN_HEIGHT))				// 屏幕对角线

#define	NUM_VERTEX		(4)		// 頂点数
#define	NUM_POLYGON		(2)		// ポリゴン数

////////////////////////////
// P1 P2区分
////////////////////////////
#define P1_SET			(0)
#define P2_SET			(1)
#define P3_SET			(2)
#define P4_SET			(3)

// 上記頂点フォーマットに合わせた構造体を定義
typedef struct
{
	D3DXVECTOR3 vtx;		// 頂点座標
	float rhw;				// テクスチャのパースペクティブコレクト用
	D3DCOLOR diffuse;		// 反射光
	D3DXVECTOR2 tex;		// テクスチャ座標
} VERTEX_2D;

// モードの種類
typedef enum
{
	MODE_LOGO = 0,
	MODE_TITLE,		// タイトル画面
	MODE_MODES,
	MODE_SM,
	MODE_GAME,			// ゲーム画面
	MODE_VS,
	MODE_END,
	MODE_ENDVS,
	MODE_MAX
} MODE;

//*****************************************************************************
// プロトタイプ宣言
//*****************************************************************************
void SetMode(MODE mdoe);
MODE GetMode(void);

#endif